using System;

namespace TenantManagementService.Monitoring
{
    /// <summary>
    /// 监控指标类型
    /// </summary>
    public enum MetricType
    {
        /// <summary>
        /// 计数器
        /// </summary>
        Counter = 1,

        /// <summary>
        /// 计量器
        /// </summary>
        Gauge = 2,

        /// <summary>
        /// 直方图
        /// </summary>
        Histogram = 3,

        /// <summary>
        /// 摘要
        /// </summary>
        Summary = 4
    }

    /// <summary>
    /// 监控指标类别
    /// </summary>
    public enum MetricCategory
    {
        /// <summary>
        /// 租户指标
        /// </summary>
        Tenant = 1,

        /// <summary>
        /// 系统指标
        /// </summary>
        System = 2,

        /// <summary>
        /// 业务指标
        /// </summary>
        Business = 3,

        /// <summary>
        /// 性能指标
        /// </summary>
        Performance = 4,

        /// <summary>
        /// 安全指标
        /// </summary>
        Security = 5
    }

    /// <summary>
    /// 监控单位
    /// </summary>
    public enum MetricUnit
    {
        /// <summary>
        /// 无单位
        /// </summary>
        None = 1,

        /// <summary>
        /// 个数
        /// </summary>
        Count = 2,

        /// <summary>
        /// 百分比
        /// </summary>
        Percentage = 3,

        /// <summary>
        /// 字节
        /// </summary>
        Bytes = 4,

        /// <summary>
        /// 毫秒
        /// </summary>
        Milliseconds = 5,

        /// <summary>
        /// 秒
        /// </summary>
        Seconds = 6,

        /// <summary>
        /// 每分钟请求数
        /// </summary>
        RequestsPerMinute = 7,

        /// <summary>
        /// 每秒请求数
        /// </summary>
        RequestsPerSecond = 8,

        /// <summary>
        /// 错误率
        /// </summary>
        ErrorRate = 9
    }

    /// <summary>
    /// 告警级别
    /// </summary>
    public enum AlertLevel
    {
        /// <summary>
        /// 信息
        /// </summary>
        Info = 1,

        /// <summary>
        /// 警告
        /// </summary>
        Warning = 2,

        /// <summary>
        /// 严重
        /// </summary>
        Critical = 3,

        /// <summary>
        /// 紧急
        /// </summary>
        Emergency = 4
    }

    /// <summary>
    /// 告警状态
    /// </summary>
    public enum AlertStatus
    {
        /// <summary>
        /// 活跃
        /// </summary>
        Active = 1,

        /// <summary>
        /// 已解决
        /// </summary>
        Resolved = 2,

        /// <summary>
        /// 已忽略
        /// </summary>
        Ignored = 3,

        /// <summary>
        /// 暂停
        /// </summary>
        Suppressed = 4
    }

    /// <summary>
    /// 健康状态
    /// </summary>
    public enum HealthStatus
    {
        /// <summary>
        /// 健康
        /// </summary>
        Healthy = 1,

        /// <summary>
        /// 警告
        /// </summary>
        Warning = 2,

        /// <summary>
        /// 不健康
        /// </summary>
        Unhealthy = 3,

        /// <summary>
        /// 未知
        /// </summary>
        Unknown = 4
    }
}